package com.cyt.work.divideclass.service;

import com.cyt.base.model.dto.ReturnResult;
import com.cyt.sys.model.po.SysUser;
import com.cyt.sys.service.BaseService;
import com.cyt.sys.util.server.Sys;
import com.cyt.work.divideclass.model.po.Divideclass;
import com.cyt.work.divideclass.model.vo.DivideclassVo;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.util.List;


/**
 * 智能分班-智能分班Service层接口类
 *
 * @author caideyong
 * @date 2019-12-20 13:54:04
 */
public interface DivideclassService extends BaseService<Divideclass> {

    /**
     * 查询对象集合
     *
     * @param divideclassVo 对象
     * @return List 对象集合
     * @author caideyong
     * @date 2019-12-20 13:54:04
     */
    List<Divideclass> listExample(DivideclassVo divideclassVo);

    /**
     * 分页查询
     *
     * @param divideclassVo 接受参数对象
     * @param pageNum       分页数
     * @param pageSize      每页显示条数
     * @return ReturnResult
     * @author caideyong
     * @date 2019-12-20 13:54:04
     */
    ReturnResult page(DivideclassVo divideclassVo, int pageNum, int pageSize);

    /**
     * 添加或更新
     *
     * @param divideclassVo 参数接受对象
     * @param sysUser       当前用户
     * @return ReturnResult
     * @author caideyong
     * @date 2019-12-20 13:54:04
     */
    ReturnResult addOrUpdate(DivideclassVo divideclassVo, SysUser sysUser);


    ReturnResult fbResult(DivideclassVo divideclassVo, SysUser sysUser);

    ReturnResult importData(HttpServletRequest request, MultipartFile file, String catalog, String update, String applyId, String divideId,SysUser sysUser);

    /**
     * 分班
     *
     * @param divideclassVo 参数接受对象
     * @param sysUser       当前用户
     * @return ReturnResult
     * @author 开始分班
     * @date 2019-12-20 13:54:04
     */
    ReturnResult divideClass(DivideclassVo divideclassVo, SysUser sysUser);


    /**
     * 导入
     *
     * @param file
     * @param sysUser
     * @author caideyong
     * @date 2020/1/3 13:47
     */
    ReturnResult importExcel(HttpServletRequest request, MultipartFile file, String catalog, SysUser sysUser, String divideId, String applyId);


    /**
     * 根据条件逻辑删除
     *
     * @param divideclassVo 参数接受对象
     * @param sysUser       当前用户
     * @return ReturnResult
     * @author caideyong
     * @date 2019-12-20 13:54:04
     */
    ReturnResult remove(DivideclassVo divideclassVo, SysUser sysUser);

    /**
     * 根据条件物理删除
     *
     * @param divideclassVo 参数接受对象
     * @param sysUser       当前用户
     * @return ReturnResult
     * @author caideyong
     * @date 2019-12-20 13:54:04
     */
    ReturnResult delete(DivideclassVo divideclassVo, SysUser sysUser);
}